package file;

import java.io.File;
import java.io.FileFilter;

/**
 * @author Luka
 * @date 2021/05/27 14:03
 *
 * 有条件获取一个目录中的子项
 *
 * File[] listFile(FilerFilter filter)
 * 重载的listFiles方法要求我们传入一个文件过滤器,然后将该目录中符合过滤器要求的
 * 子项返回
 *
 **/
public class ListFileDemo2 {
    public static void main(String[] args) {
        //获取目录下的文本文件(".txt"结尾)
        File dir = new File(".");
        if(dir.isDirectory()){
            //定义一个文件过滤器
            FileFilter filter = new FileFilter() {
                /*
                    实现FileFilter接口后必须重写accept方法
                    该方法用来定义过滤规则,将参数file作为过滤残障无
                    如果返回true,表示符合过滤要求
                 */
                @Override
                public boolean accept(File pathname) {
                    String name = pathname.getName();
                    boolean endWith = name.endsWith(".txt");
                    return endWith&&pathname.isFile();
                }
            };
            File[] sub =dir.listFiles(filter);

            System.out.println("符合条件的文件有"+sub.length+"个");
        }
    }
}